import '../repository/rest_client.dart';

import '../presenter/login_presenter.dart';
import '../repository/token_repository.dart';
import '../repository/user_repository.dart';
import '../usecase/login_usecase.dart';
import '../usecase/usecase.dart';
import '../usecase/user_usecase.dart';

abstract class LoginController {
  final UserRepository _userRepository;
  final LoginPresenter _presenter;
  final TokenRepository _tokenRepository;
  final RestClient _client;

  LoginController(this._presenter, this._tokenRepository, this._client,
      this._userRepository);

  userLogin() => UserLoginUseCase(
      _userRepository, _presenter, _tokenRepository, _client)(NoParams());
  clearUser() =>
      LoginClearUserUseCase(_presenter, _tokenRepository, _client)(NoParams());
}
